package com.ruoyi.clf.service.impl;


import java.util.HashMap;
import java.util.List;

import com.alibaba.fastjson2.JSON;
import com.alibaba.fastjson2.JSONObject;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.ruoyi.clf.mapper.EvaluateMapper;
import com.ruoyi.clf.domain.Evaluate;
import com.ruoyi.clf.service.IEvaluateService;

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.URL;
import static com.ruoyi.clf.util.JavaGet.params;


/**
 * 服务评价Service业务层处理
 * 
 * @author clf
 * @date 2025-05-10
 */
@Service
public class EvaluateServiceImpl implements IEvaluateService 
{
    @Autowired
    private EvaluateMapper evaluateMapper;

    /**
     * 查询服务评价
     * 
     * @param id 服务评价主键
     * @return 服务评价
     */
    @Override
    public Evaluate selectEvaluateById(Long id)
    {
        return evaluateMapper.selectEvaluateById(id);
    }

    /**
     * 查询服务评价列表
     * 
     * @param evaluate 服务评价
     * @return 服务评价
     */
    @Override
    public List<Evaluate> selectEvaluateList(Evaluate evaluate)
    {
        return evaluateMapper.selectEvaluateList(evaluate);
    }

    /**
     * 新增服务评价
     * 
     * @param evaluate 服务评价
     * @return 结果
     */
    @Override
    public int insertEvaluate(Evaluate evaluate)  {
//        加入机器审核
        String apiKey = "920012f00c62e99671e037f627fb5004";
        String apiUrl = "http://apis.juhe.cn/textAnti/index";

        HashMap<String, String> map = new HashMap<>();
        map.put("key", apiKey);
        map.put("text", evaluate.getContent());

        try {
            URL url = new URL(String.format("%s?%s", apiUrl, params(map)));
            BufferedReader in = new BufferedReader(new InputStreamReader(url.openConnection().getInputStream()));
            String inputLine;
            StringBuffer response = new StringBuffer();
            while ((inputLine = in.readLine()) != null) {
                response.append(inputLine);
            }
            in.close();
            System.out.println(response);

            // 解析 JSON 响应
            String responseStr = response.toString();
            JSONObject json = JSON.parseObject(responseStr, JSONObject.class);
            if (json.getInteger("error_code") == 0) {
                JSONObject result = json.getJSONObject("result");
                String conclusion = result.getString("conclusion");
                if ("不合规".equals(conclusion)) {
//                    不合规，直接到3审核失败
                    evaluate.setStatus(3l);
                    return evaluateMapper.insertEvaluate(evaluate);
                } else if ("合规".equals(conclusion)) {
//                    机器审核合规，变为1待人工审核
                   evaluate.setStatus(1l);
                    return evaluateMapper.insertEvaluate(evaluate);
                }
            } else {
                System.out.println("文本检测请求失败：" + json.getString("reason"));
                return -2; // 表示请求失败
            }
        } catch (Exception e) {
            e.printStackTrace();
            return -3; // 表示异常错误
        }
        return 0; // 兜底返回
    }



    /**
     * 修改服务评价
     * 
     * @param evaluate 服务评价
     * @return 结果
     */
    @Override
    public int updateEvaluate(Evaluate evaluate)
    {
        return evaluateMapper.updateEvaluate(evaluate);
    }

    /**
     * 批量删除服务评价
     * 
     * @param ids 需要删除的服务评价主键
     * @return 结果
     */
    @Override
    public int deleteEvaluateByIds(Long[] ids)
    {
        return evaluateMapper.deleteEvaluateByIds(ids);
    }

    /**
     * 删除服务评价信息
     * 
     * @param id 服务评价主键
     * @return 结果
     */
    @Override
    public int deleteEvaluateById(Long id)
    {
        return evaluateMapper.deleteEvaluateById(id);
    }
}
